//+------------------------------------------------------------------+ //| StochScalp^^2^^.mq4 | //| Nicholishen | //| | //+------------------------------------------------------------------+ #property copyright "Nicholishen @ Apex Group Investments,LLC" #property link "www.forex-tsd.com" #include #include extern string ________Inputs_________; extern int Confirm=3000; extern int K=3; //extern int D=2; //extern int SL=1; extern double lots=1; extern int TakeProfit=9; extern int StopLoss=25; extern int ob=99; extern int os=1; extern string _______TradeTime________; extern bool UseTimeFilter=false; extern int USA_Session=1100; extern int USA_End=1500; extern int Asian_Session=2300; extern int Asian_End=300; extern int London_Session=600; extern int London_End=1000; extern string ______TrailingStop_______; extern bool UseTrail = true; extern double TrailingAct = 6; extern double TrailingStep = 6; //extern int BeginHour=8; //extern int EndHour=18; int bar; int TestStart; int k; int mm,dd,yy,hh,min,ss,tf; string comment; string syym; string qwerty; int OrderID; double TrailPrice; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int TimeFilter(){ if (((Hour()>=USA_Session && Hour() < USA_End) || (Hour()>=Asian_Session && Hour() < Asian_End) || (Hour()>=London_Session && Hour()< London_End)) ) { return(1); } return(0); } //+------------------------------------------------------------------+ // Calculates Current Orders on TF,Pair,EA //+------------------------------------------------------------------+ int CalculateCurrentOrders(){ int orders=0; for(int i=0;iob ){ if(Rev){ return(1); }else{ return(2); } } if(sto1 < os ){ if(Rev){ return(2); } else{ return(1); } } } if(functyp==2){ if(sto1 >ob){ if(Rev){ return(1); }else{ return(2); } } if(sto1 < os){ if(Rev){ return(2); } else{ return(1); } } } return(0); } //+------------------------------------------------------------------+ //| Open Conditions | //+------------------------------------------------------------------+ void CheckForOpen(){ double sl,tp; int res,error; if(TradeSignal(1)==2){ if (StopLoss==0) {sl=0;} else sl=Bid+Point*StopLoss; if (TakeProfit==0) {tp=0;} else tp=Bid-Point*TakeProfit; bar=Bars; res = OrderSend(Symbol(),OP_SELL,lots,Bid,3,sl,tp,"Indian Scalp",OrderID,0,Blue); // def if(res<0){ error=GetLastError(); Print("Error = ",ErrorDescription(error)); } } if(TradeSignal(1)==1){ if (StopLoss==0) {sl=0;} else sl=Ask-Point*StopLoss; if (TakeProfit==0) {tp=0;} else tp=Ask+Point*TakeProfit; bar=Bars; res = OrderSend(Symbol(),OP_BUY,lots,Ask,3,sl,tp,"Indian Scalp",OrderID,0,Red); // def if(res<0){ error=GetLastError(); Print("Error = ",ErrorDescription(error)); } } } //+------------------------------------------------------------------+ //| Close conditions | //+------------------------------------------------------------------+ void CheckForClose(){ for(int i=0;i0 && TrailPrice < Bid-TrailingStep*Point){ TrailPrice=Bid-TrailingStep*Point; Print("TRAIL PRICE MODIFIED: ",TrailPrice); } if (TrailPrice >0 && TrailPrice >= Bid-TrailingStep*Point){ CloseOrder(1); } } if (OrderType()==OP_SELL) { if (OrderOpenPrice()-Ask > TrailingAct*Point && TrailPrice ==0) { TrailPrice=Ask+TrailingStep*Point; Print("TRAIL PRICE MODIFIED: ",TrailPrice); } if (TrailPrice>0 && TrailPrice > Ask+TrailingStep*Point){ TrailPrice=Ask+TrailingStep*Point; Print("TRAIL PRICE MODIFIED: ",TrailPrice); } if (TrailPrice >0 && TrailPrice <= Ask+TrailingStep*Point){ CloseOrder(2); } } } } }} void CloseOrder(int ord){ for(int i=0;i